#include "a.h"
#include "b.h"
#include "scene.h"

#include <iostream>

using namespace std;

int main()
{
  A* a1=new A();//,a2,a3;
  B b1;//,b2,b3;
  Manager* m;

  /*
  cout <<"A1 :"<<IDENTIFY(A)<<"  B1 :"<<IDENTIFY(b1)<<endl;
  m=&a1;
  cout <<"Puntero a A :"<<IDENTIFY(m)<<endl;
  m=&b1;
  cout <<"Puntero a B :"<<IDENTIFY(m)<<endl;
  */

  Scene s;

  s.addManager(a1);
  //s.addManager(&b1);

  if(s.hasManager(IDENTIFY(A)))
    cout<<"Scene tiene un manager tipo A"<<endl;

  if(s.hasManager(IDENTIFY(B)))
    cout<<"Scene tiene un manager tipo B"<<endl;

  A* p;
  p=s.get<A>();

  p->print_me();

  s.removeManager(IDENTIFY(A));
  cout<<"Borrado"<<endl;
  if(s.get<A>()==0)
    cout<<"Puta Madre"<<endl;

  return 0;
}
